The present invention relates to a multiprocessor system and address resolution method therefor, and more particularly to a multiprocessor system featuring the distributed shared memory architecture and to address resolution method therefor.
Compared with a system where all memory is provided in one location, a system featuring the distributed shared architecture which distributes memory among multiple processors gives the user fast access to local memory. However, when multiple memories located at different locations are organized into one memory space in the distributed shared memory configuration, it is necessary to check whether a requested access is to a local memory or to a remote memory and, when the access request is to a remote memory, it must be transferred to the requested remote memory. This requires some means for resolving addresses (e.g., an address translation table).
A system with a typical distributed shared memory configuration usually has a plurality of configuration units (hereinafter called xe2x80x9ccellsxe2x80x9d), each having computer""s main components such as processors and memories, interconnected with each other to form a large system. In this case, it is relatively easy to separate each cell and run it as an independent computer. This separation is called xe2x80x9cpartitioningxe2x80x9d, and a separated cell is called xe2x80x9ca partitionxe2x80x9d or xe2x80x9cdomainxe2x80x9d. This configuration gives an advantage over a centralized memory system in that a large system can be built easily.
On the other hand, in a large symmetric multiprocessor computer in which multiple processors share memory, there are software constraints and resource competitions that make it difficult to increase performance in proportion to the number of processors (scalability). There is also a physical limitation on the number of processors that can be added. To cope with these problems, multiple computers are sometimes interconnected to build a system which provides large processing power. A system like this is called xe2x80x9ca cluster systemxe2x80x9d, and the independent computers constituting the cluster system are called xe2x80x9cnodesxe2x80x9d. The cluster system allows the user to build a system of any size and, in addition, ensures availability. That is, in many cases, the cluster system having multiple computers, each operating independently, prevents an error or a crash generated in one location of the system from affecting the whole system. For this reason, the cluster system is sometimes used to build a system which requires high reliability.
The problems with the cluster system described above is that the setup and the management of the system is more complex than a single computer of the same size and that the cabinets and cables require additional costs. To solve these problems, an xe2x80x9cin-boxxe2x80x9d cluster system is on the market today. In this system, multiple already-interconnected small computers are installed in one cabinet and the setup and test are made before shipping. However, conventional cluster systems, including the xe2x80x9cin-boxxe2x80x9d cluster system, use a network for computer interconnection. This results in a large communication overhead, sometimes preventing performance from increasing as more nodes are added.
On the other hand, added processors do not always increase the performance of a large single computer depending upon the processing it performs. In addition, an error or a failure, once caused in a large single computer, sometimes affects the whole system.
The present invention seeks to solve the problems associated with the prior art described above. It is an object of the present invention to provide a computer system, featuring the distributed shared memory architecture, which selectively acts as a single symmetric multiprocessor computer system or as an xe2x80x9cin-boxxe2x80x9d cluster system. The computer with this configuration solves the problems with, and takes advantage of, the symmetric computer system and the xe2x80x9cin-boxxe2x80x9d cluster system depending upon processing to be performed.
According to one aspect of the present invention, there is provided a multiprocessor system having a plurality of cells each including at least one processor and at least one memory, wherein the multiprocessor system determines a cell including the memory indicated by a specified address and inhibits a write request if destination of the request is some other cell.